1. Field of the Invention
Embodiments of the present invention generally relate to virtualization technologies. More particularly, the present invention relates to a method and apparatus for mapping virtual drives.
2. Description of the Related Art
People (e.g., employees) utilize various computing environments (e.g., MICROSOFT WINDOWS XP, APPLE MACINTOSH OS, REDHAT GNU OS, and the like) to perform various tasks and functions (e.g., job-related duties). For example, a computer running MICROSOFT WINDOWS XP may be used to create a presentation while a computer running REDHAT GNU OS may be used to render computer graphics. Traditionally, a host computer could only operate one computing environment (e.g., an operating system supporting application software and device drivers) at a time.
Virtualization enables the creation of multiple computing environments on a single host computer. Hence, one host computer supports numerous and/or different computing environments for various applications or users (e.g., remote users). Virtualization may be accomplished by a virtualization manager (Hypervisor) and one or more virtual machines, each comprising an operating system and application software resident on the host computer.
Generally, the virtual machine refers to software that creates a virtualized environment between the computer platform and its operating system, so that the end user can operate software on an abstract machine. The virtual machine allows applications written for one OS to be executed on a machine which runs a different OS or provide execution “sandboxes”, which provide a greater level of isolation between processes than is achieved when running multiple processes on the same instance of an OS. Another use is to provide multiple users the illusion of having an entire computer, one that is their “private” machine, isolated from other users, all on a single physical machine. Another advantage is that booting and restarting a virtual machine is much faster than a physical machine, since it may be possible to skip tasks such as hardware initialization.
The virtual machine may be represented by a computer image (e.g., an image file stored in a computer memory) that comprises information for starting and operating the virtualized environment on the host computer. Generally, the virtual machine image comprises device drivers, operating system files, various data as well as a number of software packages for virtualizing hardware and software of the host computer. The virtual machine generated by executing the virtual machine image communicates with one or more virtual disks (e.g., one or more Virtual Machine Disk (VMDK) files that store the contents of a data storage container) through various interfaces (e.g., Small Computer System Interface (SCSI)) in a manner similar to a physical data storage container (e.g., hard disk).
Generally, each virtual disk (e.g., VMDK, VHD and the like) comprises multiple blocks of data that are accessible by a guest operating system running on the virtual machine. The multiple blocks of data are arranged using a variety of techniques (e.g., flat files, sparse files and the like). The guest operating system is configured to create partitions, logical drives, dynamic disks and volumes within the virtual disks for use by the virtual machine. Additionally, the guest operating system is configured to create a disk array using the virtual disks (e.g., any type of Redundant Array of Independent/Inexpensive Disks (RAID) configuration) using hardware and/or software configured to arrange the file data on the virtual disks in a manner similar to the physical disks. Generally, a RAID configuration is a disk array in which a portion of the virtual storage capacity is used to store redundant information regarding the file data stored on the remainder of the virtual storage capacity. The redundant information enables regeneration of the file data in the event that a member virtual disk of the disk array or an access path to the member virtual disk fails. For example, a volume using a RAID-5 configuration has file data striped across the virtual disks.
Computer System Administrators of organizations that employ virtualization technologies desire to backup and restore virtual machines as well as any file system objects (e.g., files and directories) associated with the guest operating system. As mentioned above, an image file is used to store the virtual machine. The image file is generated and stored on a Storage Area Network (SAN) by backup proxy software. If the virtual machine (e.g., file data within the virtual machine) is needed at a later date, the backup proxy software must first restore the entire virtual machine and then mount the virtual machine to backup individual files and directories.
Therefore there is a need in the art for a method and apparatus for mapping virtual drives to enable individual file data access and restoration without backing up an image for a virtual machine.